(function($){
'use strict';
$(window).on('elementor/frontend/init',
function (){
qodefAddonsElementor.init();
qodefAddonsElementorPromoWidgets.init();
}
);
var qodefAddonsElementor={
init: function (){
var isEditMode=Boolean(elementorFrontend.isEditMode());
if(isEditMode){
for(var key in qodefAddonsCore.shortcodes){
for(var keyChild in qodefAddonsCore.shortcodes[key]){
qodefAddonsElementor.reInitShortcode(key,
keyChild
);
}}
}},
reInitShortcode: function(key, keyChild){
elementorFrontend.hooks.addAction('frontend/element_ready/' + key + '.default',
function(e){
if(typeof qodefAddonsCore.shortcodes[key][keyChild]==='undefined'){
console.log(keyChild);
}else if(typeof qodefAddonsCore.shortcodes[key][keyChild].initSlider==='function'&&e.find('.qodef-qi-swiper-container').length){
var $sliders=e.find('.qodef-qi-swiper-container');
if($sliders.length){
$sliders.each(function (){
qodefAddonsCore.shortcodes[key][keyChild].initSlider($(this));
}
);
}}else if(typeof qodefAddonsCore.shortcodes[key][keyChild].initItem==='function'&&e.find('.qodef-shortcode').length){
qodefAddonsCore.shortcodes[key][keyChild].initItem(e.find('.qodef-shortcode'));
}else{
qodefAddonsCore.shortcodes[key][keyChild].init();
}}
);
},
};
var qodefAddonsElementorPromoWidgets={
init: function (){
if(typeof elementor!=='undefined'){
elementor.hooks.addFilter('panel/elements/regionViews',
function(panel){
var qodeWidgetsPromoHandler,
elementsView=panel.elements.view,
categoriesView=panel.categories.view;
qodeWidgetsPromoHandler={
className: function (){
var className='elementor-element-wrapper';
if(!this.isEditable()){
className +=' elementor-element--promotion';
if(this.isQodeWidget()){
className +=' qodef-element--promotion';
}}
return className;
},
isQodeWidget: function (){
if(undefined!==this.model.get('name')){
return 0===this.model.get('name').indexOf('qi_');
}},
getElementObj: function(key){
var widgetObj=elementor.config.promotionWidgets.find(function(widget, index){
if(widget.name==key){
return true;
}}
);
return widgetObj;
},
onMouseDown: function (){
var actionURL=elementor.config.elementPromotionURL.replace('%s',
this.model.get('name')
),
title=this.model.get('title'),
content=sprintf(
wp.i18n.__('Use %s widget and dozens more pro features to extend your toolbox and build sites faster and better.',
'qi-addons-for-elementor'
),
title
),
promotion=elementor.config.promotion.elements;
if(this.isQodeWidget()){
var widgetObject=this.getElementObj(this.model.get('name'));
if(typeof widgetObject.helpUrl!=='undefined'){
actionURL=widgetObject.helpUrl;
}
content=sprintf(
wp.i18n.__('The %s comes with advanced professional functionalities and an even smoother website-making experience. %s Upgrade Qi Addons for Elementor %s',
'qi-addons-for-elementor'
),
title,
'',
''
);
}
elementor.promotion.showDialog({
title: sprintf(
wp.i18n.__('%s Widget',
'qi-addons-for-elementor'
),
title
),
content: content,
position: {
blockStart: '-7'
},
targetElement: this.el,
actionButton: {
url: actionURL,
text: promotion.action_button.text,
classes: promotion.action_button.classes||['elementor-button', 'go-pro']
}}
);
}};
panel.elements.view=elementsView.extend({
childView: elementsView.prototype.childView.extend(qodeWidgetsPromoHandler)
}
);
panel.categories.view=categoriesView.extend({
childView: categoriesView.prototype.childView.extend({
childView: categoriesView.prototype.childView.prototype.childView.extend(qodeWidgetsPromoHandler)
}
)
}
);
return panel;
}
);
}},
};})(jQuery);
(function ($){
const wdtSectionsOptionsHandler=function($scope){
const animationEffectInstance=new wdtWidgetsAnimationEffectHandlerInit($scope);
animationEffectInstance.init();
};
const wdtWidgetsAnimationEffectHandlerInit=function($scope){
const $self=this,
$window=$(window),
$sectionId=$scope.data('id'),
$editMode=Boolean(elementorFrontend.isEditMode()),
$activeBreakpoints=elementorFrontend.config.responsive.activeBreakpoints,
$deviceMode=elementorFrontend.getCurrentDeviceMode();
let $activeBreakpointkeys=[];
let $animationEffectSettings=false;
let $mouseMoveItemSettings={};
let $scrollItemSettings={};
$self.init=function(){
$self.animationEffectInit();
};
$self.filterObjects=function($settings, $searchKey){
let $settingKeys=Object.keys($settings).filter((key)=> key.includes($searchKey));
let $filteredSettings=$settingKeys.reduce((cur, key)=> { return Object.assign(cur, { [key]: $settings[key] })}, {});
if(Object.keys($filteredSettings).length){
return $filteredSettings;
}
return false;
};
$self.animationEffectInit=function(){
if($editMode){
$animationEffectSettings=$self.generateEditorSettings($sectionId);
}else{
$animationEffectSettings=$scope.data('settings')||false;
$animationEffectSettings=$self.filterObjects($animationEffectSettings, 'wdt_');
}
if(!$animationEffectSettings||$animationEffectSettings['wdt_animation_effect']==='none'||$animationEffectSettings['wdt_animation_effect']===''){
return false;
}
$self.updateActiveBreakpoints();
$self.generateBgItemsInSections();
if(Object.keys($mouseMoveItemSettings).length){
$self.animationEffectMouseMove();
}
if(Object.keys($scrollItemSettings).length){
let img=new Image();
if($animationEffectSettings['wdt_bg_image']['url']!==''){
img.src=$animationEffectSettings['wdt_bg_image']['url'];
img.onload=function(){
let $bgCSS={
'height': this.height+'px'
};
$scope.find('.wdt-section-bgeffects-image').css($bgCSS);
$self.animationEffectScroll();
}}
}};
$self.generateEditorSettings=function($sectionId){
let $editorModels=null,
$editorSettings={};
if(!window.elementor.hasOwnProperty('elements')){
return false;
}
$editorModels=window.elementor.elements.models;
if(!$editorModels){
return false;
}
$.each($editorModels, function(index, obj){
if($sectionId===obj.id){
$editorSettings=obj.attributes.settings.attributes;
}});
if(!Object.keys($editorSettings).length){
return false;
}
return $self.filterObjects($editorSettings, 'wdt_');
};
$self.updateActiveBreakpoints=function(){
$.each($activeBreakpoints, function (key, value){
if('widescreen'===key){
$activeBreakpointkeys.push('desktop');
$activeBreakpointkeys.push(key);
}else{
$activeBreakpointkeys.push(key);
}});
if(-1===$activeBreakpointkeys.indexOf('widescreen')){
$activeBreakpointkeys.push('desktop');
}};
$self.generateBreakpointwiseBgItems=function($section){
let $bgItems={};
let $wdt_bg_image=($section['wdt_bg_image']&&''!=$section['wdt_bg_image']['url']) ? $section['wdt_bg_image']['url']:'';
let $wdt_bg_position=($section['wdt_bg_position']&&''!=$section['wdt_bg_position']) ? $section['wdt_bg_position']:'center center';
let $wdt_bg_size=($section['wdt_bg_size']&&''!=$section['wdt_bg_size']) ? $section['wdt_bg_size']:'';
$activeBreakpointkeys.forEach(function(breakpoint){
if('desktop'===breakpoint){
$bgItems[breakpoint]={
'bgImage':$wdt_bg_image,
'bgPosition':$wdt_bg_position,
'bgSize':$wdt_bg_size
};}else{
$bgItems[breakpoint]={
'bgImage':($section['wdt_bg_image_' + breakpoint]&&''!=$section['wdt_bg_image_' + breakpoint]['url']) ? $section['wdt_bg_image_' + breakpoint]['url']:$wdt_bg_image,
'bgPosition':($section['wdt_bg_position_' + breakpoint]&&''!=$section['wdt_bg_position_' + breakpoint]) ? $section['wdt_bg_position_' + breakpoint]:$wdt_bg_position,
'bgSize':($section['wdt_bg_size_' + breakpoint]&&''!=$section['wdt_bg_size_' + breakpoint]) ? $section['wdt_bg_size_' + breakpoint]:$wdt_bg_size
};}});
return $bgItems;
};
$self.generateBgItemsInSections=function(){
$('.wdt-section-bgeffects-item', $scope).remove();
const $effectType=$animationEffectSettings['wdt_animation_effect'];
let $bgItem=$self.generateBreakpointwiseBgItems($animationEffectSettings);
if($effectType==='none'||$effectType===''||!$bgItem[$deviceMode]){
return false;
}
if(!$scope.hasClass('wdt-section-bgeffects')){
$scope.addClass('wdt-section-bgeffects');
}
const $bgImage=$bgItem[$deviceMode].bgImage;
const $bgPosition=$bgItem[$deviceMode].bgPosition;
const $bgSize=$bgItem[$deviceMode].bgSize;
if($effectType==='mouse-move'){
let $layout=$('
').prependTo($scope);
$mouseMoveItemSettings=$self.filterObjects($animationEffectSettings, 'wdt_mme_');
$mouseMoveItemSettings['wdt_item']=$layout;
}else if($effectType==='scroll'){
let $layout=$('').prependTo($scope);
let $bgCSS={
'background-image': 'url(' + $bgImage + ')',
'background-position': $bgPosition,
'background-repeat': 'no-repeat',
'background-size': $bgSize
};
$('> .wdt-section-bgeffects-image', $layout).css($bgCSS);
$scrollItemSettings=$self.filterObjects($animationEffectSettings, 'wdt_sle_');
$scrollItemSettings['wdt_item']=$layout;
}};
$self.getMouseMoveResponsiveSettings=function($mouseMoveItem){
let $mouseMoveBreakpointItem={};
$activeBreakpointkeys.forEach(function($breakpoint){
if('desktop'===$breakpoint){
$mouseMoveBreakpointItem[$breakpoint]={
'speed':($mouseMoveItem['wdt_mme_speed']['size']&&''!=$mouseMoveItem['wdt_mme_speed']['size']) ? $mouseMoveItem['wdt_mme_speed']['size']:0.1,
'depth':($mouseMoveItem['wdt_mme_depth']['size']&&''!=$mouseMoveItem['wdt_mme_depth']['size']) ? $mouseMoveItem['wdt_mme_depth']['size']:1
};}else{
$mouseMoveBreakpointItem[$breakpoint]={
'speed':($mouseMoveItem['wdt_mme_speed_' + $breakpoint]['size']&&''!=$mouseMoveItem['wdt_mme_speed_' + $breakpoint]['size']) ? $mouseMoveItem['wdt_mme_speed_' + $breakpoint]['size']:$mouseMoveItem['wdt_mme_speed']['size'],
'depth':($mouseMoveItem['wdt_mme_depth_' + $breakpoint]['size']&&''!=$mouseMoveItem['wdt_mme_depth_' + $breakpoint]['size']) ? $mouseMoveItem['wdt_mme_depth_' + $breakpoint]['size']:$mouseMoveItem['wdt_mme_depth']['size']
};}});
return $mouseMoveBreakpointItem;
};
$self.animationEffectMouseMove=function(){
let $mouseMoveBreakpointwiseItem=$self.getMouseMoveResponsiveSettings($mouseMoveItemSettings);
if(!$mouseMoveBreakpointwiseItem[$deviceMode]){
return false;
}
const $speed=$mouseMoveBreakpointwiseItem[$deviceMode].speed;
const $depth=$mouseMoveBreakpointwiseItem[$deviceMode].depth;
const $moveAlong=$mouseMoveItemSettings['wdt_mme_move_along'] ? $mouseMoveItemSettings['wdt_mme_move_along']:'both';
const $invertMovement=$mouseMoveItemSettings['wdt_mme_invert_movement'] ? Boolean($mouseMoveItemSettings['wdt_mme_invert_movement']):false;
let $options={};
$scope.find('.wdt-effect-mouse-move-wrapper').attr('data-depth', $depth);
if($moveAlong==='x-axis'){
$options['scalarX']=10.0;
$options['scalarY']=0.0;
}
if($moveAlong==='y-axis'){
$options['scalarX']=0.0;
$options['scalarY']=10.0;
}
if($moveAlong==='both'){
$options['scalarX']=10.0;
$options['scalarY']=10.0;
}
$options['frictionX']=$speed;
$options['frictionY']=$speed;
$options['invertX']=$invertMovement;
$options['invertY']=$invertMovement;
$parallaxInstance=$scope.parallax($options);
};
$self.getScrollResponsiveSettings=function($scrollItem){
let $scrollBreakpointItem={};
let $wdt_sle_parallax_x_depth=($scrollItem['wdt_sle_parallax_x_depth']&&''!=$scrollItem['wdt_sle_parallax_x_depth']['size']) ? $scrollItem['wdt_sle_parallax_x_depth']['size']:50;
let $wdt_sle_parallax_y_depth=($scrollItem['wdt_sle_parallax_y_depth']&&''!=$scrollItem['wdt_sle_parallax_y_depth']['size']) ? $scrollItem['wdt_sle_parallax_y_depth']['size']:50;
let $wdt_sle_rotate_x_angle=($scrollItem['wdt_sle_rotate_x_angle']&&''!=$scrollItem['wdt_sle_rotate_x_angle']['size']) ? $scrollItem['wdt_sle_rotate_x_angle']['size']:45;
let $wdt_sle_rotate_y_angle=($scrollItem['wdt_sle_rotate_y_angle']&&''!=$scrollItem['wdt_sle_rotate_y_angle']['size']) ? $scrollItem['wdt_sle_rotate_y_angle']['size']:45;
let $wdt_sle_rotate_z_angle=($scrollItem['wdt_sle_rotate_z_angle']&&''!=$scrollItem['wdt_sle_rotate_z_angle']['size']) ? $scrollItem['wdt_sle_rotate_z_angle']['size']:45;
let $wdt_sle_scale_value=($scrollItem['wdt_sle_scale_value']&&''!=$scrollItem['wdt_sle_scale_value']['size']) ? $scrollItem['wdt_sle_scale_value']['size']:1;
let $wdt_sle_blur_value=($scrollItem['wdt_sle_blur_value']&&''!=$scrollItem['wdt_sle_blur_value']['size']) ? $scrollItem['wdt_sle_blur_value']['size']:0;
let $wdt_sle_opacity_value=($scrollItem['wdt_sle_opacity_value']&&''!=$scrollItem['wdt_sle_opacity_value']['size']) ? $scrollItem['wdt_sle_opacity_value']['size']:1;
$activeBreakpointkeys.forEach(function($breakpoint){
if('desktop'===$breakpoint){
$scrollBreakpointItem[$breakpoint]={
'parallaxDepthX': $wdt_sle_parallax_x_depth,
'parallaxDepthY': $wdt_sle_parallax_y_depth,
'rotateAngleX':$wdt_sle_rotate_x_angle,
'rotateAngleY':$wdt_sle_rotate_y_angle,
'rotateAngleZ':$wdt_sle_rotate_z_angle,
'scaleValue':$wdt_sle_scale_value,
'blurValue':$wdt_sle_blur_value,
'opacityValue':$wdt_sle_opacity_value
};}else{
$scrollBreakpointItem[$breakpoint]={
'parallaxDepthX':($scrollItem['wdt_sle_parallax_x_depth_' + $breakpoint]&&''!=$scrollItem['wdt_sle_parallax_x_depth_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_parallax_x_depth_' + $breakpoint]['size']:$wdt_sle_parallax_x_depth,
'parallaxDepthY':($scrollItem['wdt_sle_parallax_y_depth_' + $breakpoint]&&''!=$scrollItem['wdt_sle_parallax_y_depth_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_parallax_y_depth_' + $breakpoint]['size']:$wdt_sle_parallax_y_depth,
'rotateAngleX':($scrollItem['wdt_sle_rotate_x_angle_' + $breakpoint]&&''!=$scrollItem['wdt_sle_rotate_x_angle_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_rotate_x_angle_' + $breakpoint]['size']:$wdt_sle_rotate_x_angle,
'rotateAngleY':($scrollItem['wdt_sle_rotate_y_angle_' + $breakpoint]&&''!=$scrollItem['wdt_sle_rotate_y_angle_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_rotate_y_angle_' + $breakpoint]['size']:$wdt_sle_rotate_y_angle,
'rotateAngleZ':($scrollItem['wdt_sle_rotate_z_angle_' + $breakpoint]&&''!=$scrollItem['wdt_sle_rotate_z_angle_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_rotate_z_angle_' + $breakpoint]['size']:$wdt_sle_rotate_z_angle,
'scaleValue':($scrollItem['wdt_sle_scale_value_' + $breakpoint]&&''!=$scrollItem['wdt_sle_scale_value_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_scale_value_' + $breakpoint]['size']:$wdt_sle_scale_value,
'blurValue':($scrollItem['wdt_sle_blur_value_' + $breakpoint]&&''!=$scrollItem['wdt_sle_blur_value_' + $breakpoint]['size']) ? $scrollItem['wdt_sle_blur_value_' + $breakpoint]['size']:$wdt_sle_blur_value,
'opacityValue':($scrollItem['wdt_sle_opacity_value' + $breakpoint]&&''!=$scrollItem['wdt_sle_opacity_value' + $breakpoint]['size']) ? $scrollItem['wdt_sle_opacity_value' + $breakpoint]['size']:$wdt_sle_opacity_value,
};}});
return $scrollBreakpointItem;
};
$self.animationEffectScroll=function(){
let $scrollBreakpointwiseItem=$self.getScrollResponsiveSettings($scrollItemSettings);
if(!$scrollBreakpointwiseItem[$deviceMode]){
return false;
}
const $parallaxDirectionX=$scrollItemSettings['wdt_sle_parallax_x_direction'] ? Boolean($scrollItemSettings['wdt_sle_parallax_x_direction']):false;
const $parallaxDepthX=$scrollBreakpointwiseItem[$deviceMode].parallaxDepthX;
const $parallaxDirectionY=$scrollItemSettings['wdt_sle_parallax_y_direction'] ? Boolean($scrollItemSettings['wdt_sle_parallax_y_direction']):false;
const $parallaxDepthY=$scrollBreakpointwiseItem[$deviceMode].parallaxDepthY;
const $rotateX=$scrollItemSettings['wdt_sle_rotate_x'] ? Boolean($scrollItemSettings['wdt_sle_rotate_x']):false;
const $rotateAngleX=$scrollBreakpointwiseItem[$deviceMode].rotateAngleX;
const $rotateY=$scrollItemSettings['wdt_sle_rotate_y'] ? Boolean($scrollItemSettings['wdt_sle_rotate_y']):false;
const $rotateAngleY=$scrollBreakpointwiseItem[$deviceMode].rotateAngleY;
const $rotateZ=$scrollItemSettings['wdt_sle_rotate_z'] ? Boolean($scrollItemSettings['wdt_sle_rotate_z']):false;
const $rotateAngleZ=$scrollBreakpointwiseItem[$deviceMode].rotateAngleZ;
const $scale=$scrollItemSettings['wdt_sle_scale'] ? Boolean($scrollItemSettings['wdt_sle_scale']):false;
const $scaleValue=$scrollBreakpointwiseItem[$deviceMode].scaleValue;
const $blur=$scrollItemSettings['wdt_sle_blur'] ? Boolean($scrollItemSettings['wdt_sle_blur']):false;
const $blurValue=$scrollBreakpointwiseItem[$deviceMode].blurValue;
const $opacity=$scrollItemSettings['wdt_sle_opacity'] ? Boolean($scrollItemSettings['wdt_sle_opacity']):false;
const $opacityValue=$scrollBreakpointwiseItem[$deviceMode].opacityValue;
const $itemTop=+$scope.find('.wdt-effect-scroll-wrapper').offset().top;
const $itemHeight=+$scope.find('.wdt-effect-scroll-wrapper .wdt-section-bgeffects-image').height();
const $toScroll=($itemTop + $itemHeight);
const $windowHeight=$window.height();
const $fromScroll=($itemTop - $windowHeight);
if($parallaxDirectionX){
$scope.find('.wdt-effect-scroll-wrapper .wdt-section-bgeffects-image').css({
'left': '-'+$parallaxDepthX+'px'
})
}else if($parallaxDirectionY){
$scope.find('.wdt-effect-scroll-wrapper .wdt-section-bgeffects-image').css({
'top': '-'+$parallaxDepthY+'px'
})
}
let $options={'distance': 10, 'smoothness': 30, 'from-scroll': $fromScroll, 'to-scroll': $toScroll};
if($parallaxDirectionX){
$options['x']=$parallaxDepthX;
}
if($parallaxDirectionY){
$options['y']=$parallaxDepthY;
}
if($rotateX){
$options['rotateX']=$rotateAngleX;
}
if($rotateY){
$options['rotateY']=$rotateAngleY;
}
if($rotateZ){
$options['rotateZ']=$rotateAngleZ;
}
if($scale){
$options['scale']=$scaleValue;
}
if($blur){
$options['blur']=$blurValue;
}
if($opacity){
$options['opacity']=$opacityValue;
}
$scope.find('.wdt-effect-scroll-wrapper').attr('data-parallax', JSON.stringify($options));
};};
$(window).on('elementor/frontend/init', function (){
elementorFrontend.hooks.addAction('frontend/element_ready/section', wdtSectionsOptionsHandler);
});
})(jQuery);
!function(a){({showLogs:!1,round:1e3,init:function(){if(this._log("init"),this._inited)return this._log("Already Inited"),void(this._inited=!0);this._requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,t){window.setTimeout(a,1e3/60)},this._onScroll(!0)},_inited:!1,_properties:["x","y","z","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","scale","blur","opacity"],_requestAnimationFrame:null,_log:function(a){this.showLogs&&console.log("Parallax Scroll / "+a)},_onScroll:function(t){var e=a(document).scrollTop(),l=a(window).height();this._log("onScroll "+e),a("[data-parallax]").each(a.proxy(function(n,r){var s=a(r),i=[],o=!1,c=s.data("style");null==c&&(c=s.attr("style")||"",s.data("style",c));var u,d=[s.data("parallax")];for(u=2;s.data("parallax"+u);u++)d.push(s.data("parallax"+u));var m=d.length;for(u=0;uh&&("back"==s.data("sens")?(_=1,s.data("sens","go")):_++),A0&&_<=g){var u=e;"back"==s.data("sens")&&(u=l,l=-l,f=y,g=x),c=a.easing[f](null,_,u,l,g)}(c=Math.ceil(c*this.round)/this.round)==n&&r==l&&(c=l),i[t]||(i[t]=0),i[t]+=c,n!=i[t]&&(s.data("_"+t,i[t]),o=!0)}},this))}if(o){if(null!=i.z){var X=p.perspective;null==X&&(X=800);var Y=s.parent();Y.data("style")||Y.data("style",Y.attr("style")||""),Y.attr("style","perspective:"+X+"px; -webkit-perspective:"+X+"px; "+Y.data("style"))}null==i.scaleX&&(i.scaleX=1),null==i.scaleY&&(i.scaleY=1),null==i.scaleZ&&(i.scaleZ=1),null!=i.scale&&(i.scaleX*=i.scale,i.scaleY*=i.scale,i.scaleZ*=i.scale);var Z="translate3d("+(i.x?i.x:0)+"px, "+(i.y?i.y:0)+"px, "+(i.z?i.z:0)+"px)"+" "+("rotateX("+(i.rotateX?i.rotateX:0)+"deg) rotateY("+(i.rotateY?i.rotateY:0)+"deg) rotateZ("+(i.rotateZ?i.rotateZ:0)+"deg)")+" "+("scaleX("+i.scaleX+") scaleY("+i.scaleY+") scaleZ("+i.scaleZ+")")+";";this._log(Z);var q="";if(null!=i.blur){var F="blur("+i.blur+"px);";q="filter:"+F+" -webkit-filter:"+F}var k="";null!=i.opacity&&(k="opacity:"+i.opacity+";"),s.attr("style","transform:"+Z+" -webkit-transform:"+Z+" "+q+" "+k+" "+c)}},this)),window.requestAnimationFrame?window.requestAnimationFrame(a.proxy(this._onScroll,this,!1)):this._requestAnimationFrame(a.proxy(this._onScroll,this,!1))}}).init()}(jQuery);
!function(r,u,d,m){"use strict";var o="parallax",n={relativeInput:!1,clipRelativeInput:!1,calibrationThreshold:100,calibrationDelay:500,supportDelay:500,calibrateX:!1,calibrateY:!0,invertX:!0,invertY:!0,limitX:!1,limitY:!1,scalarX:10,scalarY:10,frictionX:.1,frictionY:.1,originX:.5,originY:.5,pointerEvents:!0,precision:1};function a(t,i){this.element=t,this.$context=r(t).data("api",this),this.$layers=this.$context.find(".layer");var e={calibrateX:this.$context.data("calibrate-x")||null,calibrateY:this.$context.data("calibrate-y")||null,invertX:this.$context.data("invert-x")||null,invertY:this.$context.data("invert-y")||null,limitX:parseFloat(this.$context.data("limit-x"))||null,limitY:parseFloat(this.$context.data("limit-y"))||null,scalarX:parseFloat(this.$context.data("scalar-x"))||null,scalarY:parseFloat(this.$context.data("scalar-y"))||null,frictionX:parseFloat(this.$context.data("friction-x"))||null,frictionY:parseFloat(this.$context.data("friction-y"))||null,originX:parseFloat(this.$context.data("origin-x"))||null,originY:parseFloat(this.$context.data("origin-y"))||null,pointerEvents:this.$context.data("pointer-events")||!0,precision:parseFloat(this.$context.data("precision"))||1};for(var s in e)null===e[s]&&delete e[s];r.extend(this,n,i,e),this.calibrationTimer=null,this.calibrationFlag=!0,this.enabled=!1,this.depthsX=[],this.depthsY=[],this.raf=null,this.bounds=null,this.ex=0,this.ey=0,this.ew=0,this.eh=0,this.ecx=0,this.ecy=0,this.erx=0,this.ery=0,this.cx=0,this.cy=0,this.ix=0,this.iy=0,this.mx=0,this.my=0,this.vx=0,this.vy=0,this.onMouseMove=this.onMouseMove.bind(this),this.onDeviceOrientation=this.onDeviceOrientation.bind(this),this.onOrientationTimer=this.onOrientationTimer.bind(this),this.onCalibrationTimer=this.onCalibrationTimer.bind(this),this.onAnimationFrame=this.onAnimationFrame.bind(this),this.onWindowResize=this.onWindowResize.bind(this),this.initialise()}a.prototype.transformSupport=function(t){for(var i,e,s,o,n=d.createElement("div"),r=!1,a=null,h=!1,l=null,p=null,c=0,y=this.vendors.length;cthis.calibrationThreshold||Math.abs(i)>this.calibrationThreshold)&&this.queueCalibration(0),this.portrait?(this.mx=this.calibrateX?i:this.iy,this.my=this.calibrateY?t:this.ix):(this.mx=this.calibrateX?t:this.ix,this.my=this.calibrateY?i:this.iy),this.mx*=this.ew*(this.scalarX/100),this.my*=this.eh*(this.scalarY/100),isNaN(parseFloat(this.limitX))||(this.mx=this.clamp(this.mx,-this.limitX,this.limitX)),isNaN(parseFloat(this.limitY))||(this.my=this.clamp(this.my,-this.limitY,this.limitY)),this.vx+=(this.mx-this.vx)*this.frictionX,this.vy+=(this.my-this.vy)*this.frictionY;for(var e=0,s=this.$layers.length;eu.innerWidth,this.portrait!==s&&(this.portrait=s,this.calibrationFlag=!0),this.calibrationFlag&&(this.calibrationFlag=!1,this.cx=i,this.cy=e),this.ix=i,this.iy=e)},a.prototype.onMouseMove=function(t){var i=t.clientX,e=t.clientY;!this.orientationSupport&&this.relativeInput?(this.clipRelativeInput&&(i=Math.max(i,this.ex),i=Math.min(i,this.ex+this.ew),e=Math.max(e,this.ey),e=Math.min(e,this.ey+this.eh)),this.ix=(i-this.ex-this.ecx)/this.erx,this.iy=(e-this.ey-this.ecy)/this.ery):(this.ix=(i-this.wcx)/this.wrx,this.iy=(e-this.wcy)/this.wry)};var h={enable:a.prototype.enable,disable:a.prototype.disable,updateLayers:a.prototype.updateLayers,calibrate:a.prototype.calibrate,friction:a.prototype.friction,invert:a.prototype.invert,scalar:a.prototype.scalar,limit:a.prototype.limit,origin:a.prototype.origin};r.fn[o]=function(e){var s=arguments;return this.each(function(){var t=r(this),i=t.data(o);i||(i=new a(this,e),t.data(o,i)),h[e]&&i[e].apply(i,Array.prototype.slice.call(s,1))})}}(window.jQuery||window.Zepto,window,document);
(function ($){
const wdtWidgetsOptionsHandler=function($scope){
const animationEffectInstance=new wdtWidgetsAnimationEffectHandlerInit($scope);
animationEffectInstance.init();
const inviewInstance=new wdtWidgetsInViewHandlerInit($scope);
inviewInstance.init();
};
const wdtWidgetsAnimationEffectHandlerInit=function($scope){
const $self=this,
$window=$(window),
$widgetId=$scope.data('id'),
$editMode=Boolean(elementorFrontend.isEditMode()),
$activeBreakpoints=elementorFrontend.config.responsive.activeBreakpoints,
$deviceMode=elementorFrontend.getCurrentDeviceMode();
let $parallaxInstance;
let $activeBreakpointkeys=[];
let $animationEffectSettings=false;
let $animationEffectBreakpointSettings=[];
let $autoMoveElement;
$self.init=function(){
$self.animationEffectInit();
};
$self.animationEffectInit=function(){
if($editMode){
$animationEffectSettings=$self.generateEditorSettings($widgetId);
}else{
$animationEffectSettings=$scope.data('settings')||false;
$animationEffectSettings=(false!==$animationEffectSettings) ? $animationEffectSettings:false;
}
if(!$animationEffectSettings||$animationEffectSettings['wdt_animation_effect']==='none'){
return false;
}
$self.updateActiveBreakpoints();
if($animationEffectSettings['wdt_animation_effect']==='mouse-move'){
$self.animationEffectMouseMove();
}
if($animationEffectSettings['wdt_animation_effect']==='scroll'){
$self.animationEffectScroll();
}
if($animationEffectSettings['wdt_animation_effect']==='auto-movement'){
$self.animationEffectAutoMovement();
}
if($animationEffectSettings['wdt_animation_effect']==='marquee'){
$self.animationEffectMarquee();
}};
$self.generateEditorSettings=function($widgetId){
let $editorModels=null;
let $editorSettings={};
if(!window.elementor.hasOwnProperty('elements')){
return false;
}
$editorModels=window.elementor.elements.models;
if(!$editorModels){
return false;
}
$.each($editorModels, function(index, obj){
$.each(obj.attributes.elements.models, function(index, obj){
$.each(obj.attributes.elements.models, function(index, obj){
if($widgetId===obj.id){
$editorSettings=obj.attributes.settings.attributes;
}});
});
});
let $wdtEditorKeys=Object.keys($editorSettings).filter((key)=> key.includes('wdt'));
let $wdtEditorSettings=$wdtEditorKeys.reduce((cur, key)=> { return Object.assign(cur, { [key]: $editorSettings[key] })}, {});
let $customDirections=[];
if($wdtEditorSettings['wdt_ame_custom_directions']){
$.each($wdtEditorSettings['wdt_ame_custom_directions'].models, function(index, obj){
let $customDirection=obj.attributes;
$customDirections.push($customDirection);
});
}
$wdtEditorSettings['wdt_ame_custom_directions']=$customDirections;
return $wdtEditorSettings;
};
$self.updateActiveBreakpoints=function(){
$.each($activeBreakpoints, function (key, value){
if('widescreen'===key){
$activeBreakpointkeys.push('desktop');
$activeBreakpointkeys.push(key);
}else{
$activeBreakpointkeys.push(key);
}});
if(-1===$activeBreakpointkeys.indexOf('widescreen')){
$activeBreakpointkeys.push('desktop');
}};
$self.getMouseMoveResponsiveSettings=function(){
$activeBreakpointkeys.forEach(function($breakpoint){
if('desktop'===$breakpoint){
$animationEffectBreakpointSettings[$breakpoint]={
'speed':($animationEffectSettings['wdt_mme_speed']['size']&&''!=$animationEffectSettings['wdt_mme_speed']['size']) ? $animationEffectSettings['wdt_mme_speed']['size']:0.1,
'depth':($animationEffectSettings['wdt_mme_depth']['size']&&''!=$animationEffectSettings['wdt_mme_depth']['size']) ? $animationEffectSettings['wdt_mme_depth']['size']:1
};}else{
$animationEffectBreakpointSettings[$breakpoint]={
'speed':($animationEffectSettings['wdt_mme_speed_' + $breakpoint]['size']&&''!=$animationEffectSettings['wdt_mme_speed_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_mme_speed_' + $breakpoint]['size']:$animationEffectSettings['wdt_mme_speed']['size'],
'depth':($animationEffectSettings['wdt_mme_depth_' + $breakpoint]['size']&&''!=$animationEffectSettings['wdt_mme_depth_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_mme_depth_' + $breakpoint]['size']:$animationEffectSettings['wdt_mme_depth']['size']
};}});
};
$self.animationEffectMouseMove=function(){
$self.getMouseMoveResponsiveSettings();
if(!$animationEffectBreakpointSettings[$deviceMode]){
return false;
}
const $speed=$animationEffectBreakpointSettings[$deviceMode].speed;
const $depth=$animationEffectBreakpointSettings[$deviceMode].depth;
const $moveAlong=$animationEffectSettings['wdt_mme_move_along'] ? $animationEffectSettings['wdt_mme_move_along']:'both';
const $invertMovement=$animationEffectSettings['wdt_mme_invert_movement'] ? Boolean($animationEffectSettings['wdt_mme_invert_movement']):false;
let $options={};
$scope.find('.elementor-widget-container').wrapInner('')
$scope.find('.wdt-effect-mouse-move-wrapper').attr('data-depth', $depth);
if($moveAlong==='x-axis'){
$options['scalarX']=10.0;
$options['scalarY']=0.0;
}
if($moveAlong==='y-axis'){
$options['scalarX']=0.0;
$options['scalarY']=10.0;
}
if($moveAlong==='both'){
$options['scalarX']=10.0;
$options['scalarY']=10.0;
}
$options['frictionX']=$speed;
$options['frictionY']=$speed;
$options['invertX']=$invertMovement;
$options['invertY']=$invertMovement;
$parallaxInstance=$scope.parallax($options);
};
$self.getScrollResponsiveSettings=function(){
let $wdt_sle_parallax_x_depth=($animationEffectSettings['wdt_sle_parallax_x_depth']&&''!=$animationEffectSettings['wdt_sle_parallax_x_depth']['size']) ? $animationEffectSettings['wdt_sle_parallax_x_depth']['size']:50;
let $wdt_sle_parallax_y_depth=($animationEffectSettings['wdt_sle_parallax_y_depth']&&''!=$animationEffectSettings['wdt_sle_parallax_y_depth']['size']) ? $animationEffectSettings['wdt_sle_parallax_y_depth']['size']:50;
let $wdt_sle_rotate_x_angle=($animationEffectSettings['wdt_sle_rotate_x_angle']&&''!=$animationEffectSettings['wdt_sle_rotate_x_angle']['size']) ? $animationEffectSettings['wdt_sle_rotate_x_angle']['size']:45;
let $wdt_sle_rotate_y_angle=($animationEffectSettings['wdt_sle_rotate_y_angle']&&''!=$animationEffectSettings['wdt_sle_rotate_y_angle']['size']) ? $animationEffectSettings['wdt_sle_rotate_y_angle']['size']:45;
let $wdt_sle_rotate_z_angle=($animationEffectSettings['wdt_sle_rotate_z_angle']&&''!=$animationEffectSettings['wdt_sle_rotate_z_angle']['size']) ? $animationEffectSettings['wdt_sle_rotate_z_angle']['size']:45;
let $wdt_sle_scale_value=($animationEffectSettings['wdt_sle_scale_value']&&''!=$animationEffectSettings['wdt_sle_scale_value']['size']) ? $animationEffectSettings['wdt_sle_scale_value']['size']:1;
let $wdt_sle_blur_value=($animationEffectSettings['wdt_sle_blur_value']&&''!=$animationEffectSettings['wdt_sle_blur_value']['size']) ? $animationEffectSettings['wdt_sle_blur_value']['size']:0;
let $wdt_sle_opacity_value=($animationEffectSettings['wdt_sle_opacity_value']&&''!=$animationEffectSettings['wdt_sle_opacity_value']['size']) ? $animationEffectSettings['wdt_sle_opacity_value']['size']:1;
$activeBreakpointkeys.forEach(function($breakpoint){
if('desktop'===$breakpoint){
$animationEffectBreakpointSettings[$breakpoint]={
'parallaxDepthX': $wdt_sle_parallax_x_depth,
'parallaxDepthY': $wdt_sle_parallax_y_depth,
'rotateAngleX':$wdt_sle_rotate_x_angle,
'rotateAngleY':$wdt_sle_rotate_y_angle,
'rotateAngleZ':$wdt_sle_rotate_z_angle,
'scaleValue':$wdt_sle_scale_value,
'blurValue':$wdt_sle_blur_value,
'opacityValue':$wdt_sle_opacity_value
};}else{
$animationEffectBreakpointSettings[$breakpoint]={
'parallaxDepthX':($animationEffectSettings['wdt_sle_parallax_x_depth_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_parallax_x_depth_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_parallax_x_depth_' + $breakpoint]['size']:$wdt_sle_parallax_x_depth,
'parallaxDepthY':($animationEffectSettings['wdt_sle_parallax_y_depth_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_parallax_y_depth_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_parallax_y_depth_' + $breakpoint]['size']:$wdt_sle_parallax_y_depth,
'rotateAngleX':($animationEffectSettings['wdt_sle_rotate_x_angle_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_rotate_x_angle_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_rotate_x_angle_' + $breakpoint]['size']:$wdt_sle_rotate_x_angle,
'rotateAngleY':($animationEffectSettings['wdt_sle_rotate_y_angle_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_rotate_y_angle_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_rotate_y_angle_' + $breakpoint]['size']:$wdt_sle_rotate_y_angle,
'rotateAngleZ':($animationEffectSettings['wdt_sle_rotate_z_angle_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_rotate_z_angle_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_rotate_z_angle_' + $breakpoint]['size']:$wdt_sle_rotate_z_angle,
'scaleValue':($animationEffectSettings['wdt_sle_scale_value_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_scale_value_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_scale_value_' + $breakpoint]['size']:$wdt_sle_scale_value,
'blurValue':($animationEffectSettings['wdt_sle_blur_value_' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_blur_value_' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_blur_value_' + $breakpoint]['size']:$wdt_sle_blur_value,
'opacityValue':($animationEffectSettings['wdt_sle_opacity_value' + $breakpoint]&&''!=$animationEffectSettings['wdt_sle_opacity_value' + $breakpoint]['size']) ? $animationEffectSettings['wdt_sle_opacity_value' + $breakpoint]['size']:$wdt_sle_opacity_value,
};}});
};
$self.animationEffectScroll=function(){
$self.getScrollResponsiveSettings();
if(!$animationEffectBreakpointSettings[$deviceMode]){
return false;
}
$scope.find('.elementor-widget-container').wrapInner('')
const $parallaxDirectionX=$animationEffectSettings['wdt_sle_parallax_x_direction'] ? Boolean($animationEffectSettings['wdt_sle_parallax_x_direction']):false;
const $parallaxDepthX=$animationEffectBreakpointSettings[$deviceMode].parallaxDepthX;
const $parallaxDirectionY=$animationEffectSettings['wdt_sle_parallax_y_direction'] ? Boolean($animationEffectSettings['wdt_sle_parallax_y_direction']):false;
const $parallaxDepthY=$animationEffectBreakpointSettings[$deviceMode].parallaxDepthY;
const $rotateX=$animationEffectSettings['wdt_sle_rotate_x'] ? Boolean($animationEffectSettings['wdt_sle_rotate_x']):false;
const $rotateAngleX=$animationEffectBreakpointSettings[$deviceMode].rotateAngleX;
const $rotateY=$animationEffectSettings['wdt_sle_rotate_y'] ? Boolean($animationEffectSettings['wdt_sle_rotate_y']):false;
const $rotateAngleY=$animationEffectBreakpointSettings[$deviceMode].rotateAngleY;
const $rotateZ=$animationEffectSettings['wdt_sle_rotate_z'] ? Boolean($animationEffectSettings['wdt_sle_rotate_z']):false;
const $rotateAngleZ=$animationEffectBreakpointSettings[$deviceMode].rotateAngleZ;
const $scale=$animationEffectSettings['wdt_sle_scale'] ? Boolean($animationEffectSettings['wdt_sle_scale']):false;
const $scaleValue=$animationEffectBreakpointSettings[$deviceMode].scaleValue;
const $blur=$animationEffectSettings['wdt_sle_blur'] ? Boolean($animationEffectSettings['wdt_sle_blur']):false;
const $blurValue=$animationEffectBreakpointSettings[$deviceMode].blurValue;
const $opacity=$animationEffectSettings['wdt_sle_opacity'] ? Boolean($animationEffectSettings['wdt_sle_opacity']):false;
const $opacityValue=$animationEffectBreakpointSettings[$deviceMode].opacityValue;
const $itemTop=+$scope.find('.wdt-effect-scroll-wrapper').offset().top;
const $itemHeight=+$scope.find('.wdt-effect-scroll-wrapper').height();
const $toScroll=($itemTop + $itemHeight);
const $windowHeight=$window.height();
const $fromScroll=($itemTop - $windowHeight);
let $options={'distance': 10, 'smoothness': 30, 'from-scroll': $fromScroll, 'to-scroll': $toScroll};
if($parallaxDirectionX){
$options['x']=$parallaxDepthX;
}
if($parallaxDirectionY){
$options['y']=$parallaxDepthY;
}
if($rotateX){
$options['rotateX']=$rotateAngleX;
}
if($rotateY){
$options['rotateY']=$rotateAngleY;
}
if($rotateZ){
$options['rotateZ']=$rotateAngleZ;
}
if($scale){
$options['scale']=$scaleValue;
}
if($blur){
$options['blur']=$blurValue;
}
if($opacity){
$options['opacity']=$opacityValue;
}
$scope.find('.wdt-effect-scroll-wrapper').attr('data-parallax', JSON.stringify($options));
};
$self.autoMovementOnIntersect=function(entries, $observer){
entries.forEach((entry)=> {
if(entry.isIntersecting){
$autoMoveElement.play();
}else{
$autoMoveElement.pause();
}});
}
$self.generateResponsiveRandomPoints=function($direction){
let $reponsiveRandoms={};
let $wdt_x_depth=($direction['wdt_x_depth']&&''!=$direction['wdt_x_depth']['size']) ? $direction['wdt_x_depth']['size']:0;
let $wdt_y_depth=($direction['wdt_y_depth']&&''!=$direction['wdt_y_depth']['size']) ? $direction['wdt_y_depth']['size']:0;
let $wdt_rotate_angle=($direction['wdt_rotate_angle']&&''!=$direction['wdt_rotate_angle']['size']) ? $direction['wdt_rotate_angle']['size']:0;
let $wdt_scale_value=($direction['wdt_scale_value']&&''!=$direction['wdt_scale_value']['size']) ? $direction['wdt_scale_value']['size']:1;
let $wdt_blur_value=($direction['wdt_blur_value']&&''!=$direction['wdt_blur_value']['size']) ? $direction['wdt_blur_value']['size']:0;
let $wdt_opacity_value=($direction['wdt_opacity_value']&&''!=$direction['wdt_opacity_value']['size']) ? $direction['wdt_opacity_value']['size']:1;
$activeBreakpointkeys.forEach(function($breakpoint){
if('desktop'===$breakpoint){
$reponsiveRandoms[$breakpoint]={
'depthX':$wdt_x_depth,
'depthY':$wdt_y_depth,
'rotateAngle':$wdt_rotate_angle,
'scaleValue':$wdt_scale_value,
'blurValue':$wdt_blur_value,
'opacityValue': $wdt_opacity_value
};}else{
$reponsiveRandoms[$breakpoint]={
'depthX':($direction['wdt_x_depth_' + $breakpoint]&&''!=$direction['wdt_x_depth_' + $breakpoint]['size']) ? $direction['wdt_x_depth_' + $breakpoint]['size']:$wdt_x_depth,
'depthY':($direction['wdt_y_depth_' + $breakpoint]&&''!=$direction['wdt_y_depth_' + $breakpoint]['size']) ? $direction['wdt_y_depth_' + $breakpoint]['size']:$wdt_y_depth,
'rotateAngle':($direction['wdt_rotate_angle_' + $breakpoint]&&''!=$direction['wdt_rotate_angle_' + $breakpoint]['size']) ? $direction['wdt_rotate_angle_' + $breakpoint]['size']:$wdt_rotate_angle,
'scaleValue':($direction['wdt_scale_value_' + $breakpoint]&&''!=$direction['wdt_scale_value_' + $breakpoint]['size']) ? $direction['wdt_scale_value_' + $breakpoint]['size']:$wdt_scale_value,
'blurValue':($direction['wdt_blur_value_' + $breakpoint]&&''!=$direction['wdt_blur_value_' + $breakpoint]['size']) ? $direction['wdt_blur_value_' + $breakpoint]['size']:$wdt_blur_value,
'opacityValue':($direction['wdt_opacity_value' + $breakpoint]&&''!=$direction['wdt_opacity_value' + $breakpoint]['size']) ? $direction['wdt_opacity_value' + $breakpoint]['size']:$wdt_opacity_value,
};}});
return $reponsiveRandoms;
};
$self.generateRandomPoints=function($ameCustomDirections){
let $points=[];
$ameCustomDirections.forEach(($direction)=> {
let $unitPoint={};
const $responsiveDirections=$self.generateResponsiveRandomPoints($direction);
$unitPoint={
transform: ''
};
const $xDirection=$direction['wdt_x_direction'] ? Boolean($direction['wdt_x_direction']):false;
const $depthX=$responsiveDirections[$deviceMode].depthX;
const $yDirection=$direction['wdt_y_direction'] ? Boolean($direction['wdt_y_direction']):false;
const $depthY=$responsiveDirections[$deviceMode].depthY;
const $rotate=$direction['wdt_rotate'] ? Boolean($direction['wdt_rotate']):false;
const $rotateAngle=$responsiveDirections[$deviceMode].rotateAngle;
const $scale=$direction['wdt_scale'] ? Boolean($direction['wdt_scale']):false;
const $scaleValue=$responsiveDirections[$deviceMode].scaleValue;
if($xDirection){
$unitPoint['transform'] +='translateX('+$depthX+'px) ';
}
if($yDirection){
$unitPoint['transform'] +='translateY('+$depthY+'px) ';
}
if($rotate){
$unitPoint['transform'] +='rotate('+$rotateAngle+'deg) ';
}
if($scale){
$unitPoint['transform'] +='scale('+$scaleValue+') ';
}
$unitPoint['transform']=$.trim($unitPoint['transform'])
$unitPoint['opacity']=0.2;
const $blur=$direction['wdt_blur'] ? Boolean($direction['wdt_blur']):false;
const $blurValue=$responsiveDirections[$deviceMode].blurValue;
if($blur){
$unitPoint['filter']='blur('+$blurValue+'px)';
}
const $opacity=$direction['wdt_opacity'] ? Boolean($direction['wdt_opacity']):false;
const $opacityValue=$responsiveDirections[$deviceMode].opacityValue;
if($opacity){
$unitPoint['opacity']=+$opacityValue;
}
if($unitPoint){
$points.push($unitPoint);
}});
return $points;
}
$self.animationEffectAutoMovement=function(){
$scope.find('.elementor-widget-container').wrapInner('')
let $autoMoveElementItem=$scope.find('.wdt-effect-auto-movement-wrapper')[0];
let $ameDirection=$animationEffectSettings['wdt_ame_direction'];
let $ameDuration=$animationEffectSettings['wdt_ame_duration']['size'] ? Math.ceil($animationEffectSettings['wdt_ame_duration']['size']*1500):10000;
let $ameIteration=($animationEffectSettings['wdt_ame_iteration']==='infinity') ? Infinity:1;
let $boundTo=$animationEffectSettings['wdt_bound_to'] ? $animationEffectSettings['wdt_bound_to']:'section';
let $boundToElement=($boundTo==='section') ? $scope.parents('.elementor-section'):$scope.parents('.elementor-column');
let $itemWidth=+$scope.find('.wdt-effect-auto-movement-wrapper').width();
let $sectionWidth=+$boundToElement.width();
let $sectionItemWidth=+$sectionWidth + +$itemWidth;
let $itemHeight=+$scope.find('.wdt-effect-auto-movement-wrapper').height();
let $sectionHeight=+$boundToElement.height();
let $sectionItemHeight=+$sectionHeight + +$itemHeight;
if($ameDirection==='left-to-right'){
$autoMoveElement=$autoMoveElementItem.animate([
{ transform: 'translateX(-'+$itemWidth+'px)' },
{ transform: 'translateX('+$sectionWidth+'px)' }
], {
duration: $ameDuration,
iterations: $ameIteration
});
$autoMoveElement.pause();
}else if($ameDirection==='right-to-left'){
$autoMoveElement=$autoMoveElementItem.animate([
{ transform: 'translateX('+$sectionItemWidth+'px)' },
{ transform: 'translateX(-'+$itemWidth+'px)' }
], {
duration: $ameDuration,
iterations: $ameIteration
});
$autoMoveElement.pause();
}else if($ameDirection==='top-to-bottom'){
$autoMoveElement=$autoMoveElementItem.animate([
{ transform: 'translateY(-'+$itemHeight+'px)' },
{ transform: 'translateY('+$sectionHeight+'px)' }
], {
duration: $ameDuration,
iterations: $ameIteration
});
$autoMoveElement.pause();
}else if($ameDirection==='bottom-to-top'){
$autoMoveElement=$autoMoveElementItem.animate([
{ transform: 'translateY('+$sectionItemHeight+'px)' },
{ transform: 'translateY(-'+$itemHeight+'px)' }
], {
duration: $ameDuration,
iterations: $ameIteration
});
$autoMoveElement.pause();
}else if($ameDirection==='custom'){
let $ameCustomDirections=$animationEffectSettings['wdt_ame_custom_directions'];
if($ameCustomDirections.length){
let $ameCustomDirectionPoints=$self.generateRandomPoints($ameCustomDirections);
$autoMoveElement=$autoMoveElementItem.animate($ameCustomDirectionPoints, {
duration: $ameDuration,
iterations: $ameIteration
});
$autoMoveElement.pause();
}}
if('IntersectionObserver' in window){
let $observer;
let $observerOptions={
root: null,
rootMargin: "0px",
threshold: 0.1
};
$observer=new IntersectionObserver($self.autoMovementOnIntersect, $observerOptions);
$observer.observe($scope[0]);
}else{
$autoMoveElement.play();
}};
$self.animationEffectMarquee=function(){
$scope.find('.elementor-widget-container').wrapInner('')
let $marqueeElementItem=$scope.find('.wdt-effect-marquee-wrapper');
let $width=$animationEffectSettings['wdt_mqe_width']['size'] ? $animationEffectSettings['wdt_mqe_width']['size']:200;
let $height=$animationEffectSettings['wdt_mqe_height']['size'] ? $animationEffectSettings['wdt_mqe_height']['size']:120;
let $speed=$animationEffectSettings['wdt_mqe_speed']['size'] ? $animationEffectSettings['wdt_mqe_speed']['size']:1;
let $direction=$animationEffectSettings['wdt_mqe_direction'] ? $animationEffectSettings['wdt_mqe_direction']:'left-to-right';
let $boundTo=$animationEffectSettings['wdt_mqe_bound_to'] ? $animationEffectSettings['wdt_mqe_bound_to']:'section';
let $boundToElement=($boundTo==='section') ? $scope.parents('.elementor-section'):$scope.parents('.elementor-column');
$marqueeElementItem.css({
'position': 'absolute',
'width': $width,
'height': $height
});
const $itemWidth=$marqueeElementItem.width();
const $itemOffset=$marqueeElementItem.offset();
const $itemOffsetLeft=$itemOffset.left;
const $parentWidth=$boundToElement.width();
const $parentOffset=$boundToElement.offset();
const $parentOffsetLeft=$parentOffset.left;
if($direction=='right-to-left'){
let $itemInitPosition=0;
const $leftDiff=parseFloat($itemOffsetLeft) - parseFloat($parentOffsetLeft);
const $rightPositionX=parseFloat($parentWidth) - parseFloat($leftDiff);
let $leftOffset=parseFloat($leftDiff) + parseFloat($itemWidth);
$leftOffset='-' + parseFloat($leftOffset);
function animationLoop(){
$itemInitPosition=$itemInitPosition - $speed;
$marqueeElementItem.css({
'left': $itemInitPosition + 'px'
});
$frameRtlID=window.requestAnimationFrame(animationLoop);
if($itemInitPosition <=$leftOffset){
window.cancelAnimationFrame($frameRtlID);
$itemInitPosition=$rightPositionX;
$frameRtlID=window.requestAnimationFrame(animationLoop);
}}
let $frameRtlID=window.requestAnimationFrame(animationLoop);
}else{
let $itemInitPosition=0;
const $leftDiff=parseFloat($itemOffsetLeft) - parseFloat($parentOffsetLeft);
const $maxPositionWidth=parseFloat($leftDiff) + parseFloat($itemWidth);
const $maxPositionX=parseFloat($parentWidth) - parseFloat($maxPositionWidth) + parseFloat($itemWidth);
const $loopPositionX=parseFloat($leftDiff) + parseFloat($itemWidth);
function animationLoop(){
$itemInitPosition=$itemInitPosition + $speed;
$marqueeElementItem.css({
'left': $itemInitPosition + 'px'
});
$frameLtrID=window.requestAnimationFrame(animationLoop);
if($itemInitPosition >=$maxPositionX){
window.cancelAnimationFrame($frameLtrID);
$itemInitPosition=-$loopPositionX;
$frameLtrID=window.requestAnimationFrame(animationLoop);
}}
let $frameLtrID=window.requestAnimationFrame(animationLoop);
}};};
const wdtWidgetsInViewHandlerInit=function($scope){
const $self=this,
$window=$(window),
$widgetId=$scope.data('id'),
$editMode=Boolean(elementorFrontend.isEditMode());
let $inViewSettings=false;
let $inViewLoop=false;
let $inViewElement=$scope[0];
$self.init=function(){
$self.inViewStatusUpdateInit();
};
$self.inViewStatusUpdateInit=function(){
if($editMode){
$inViewSettings=$self.generateEditorSettings($widgetId);
}else{
$inViewSettings=$scope.data('settings')||false;
$inViewSettings=(false!==$inViewSettings) ? $inViewSettings:false;
}
if(!$inViewSettings||!$inViewSettings['wdt_enable_inview_status']){
return false;
}
$inViewLoop=$inViewSettings['wdt_enable_inview_loop'];
if('IntersectionObserver' in window){
$self.createObserver();
}};
$self.generateEditorSettings=function($widgetId){
let $editorModels=null;
let $editorSettings={};
if(!window.elementor.hasOwnProperty('elements')){
return false;
}
$editorModels=window.elementor.elements.models;
if(!$editorModels){
return false;
}
$.each($editorModels, function(index, obj){
$.each(obj.attributes.elements.models, function(index, obj){
$.each(obj.attributes.elements.models, function(index, obj){
if($widgetId===obj.id){
$editorSettings=obj.attributes.settings.attributes;
}});
});
});
let $wdtEditorKeys=Object.keys($editorSettings).filter((key)=> key.includes('wdt'));
let $wdtEditorSettings=$wdtEditorKeys.reduce((cur, key)=> { return Object.assign(cur, { [key]: $editorSettings[key] })}, {});
return $wdtEditorSettings;
};
$self.createObserver=function(){
let $observer;
let $options={
root: null,
rootMargin: "0px",
threshold: 1
};
$observer=new IntersectionObserver($self.handleIntersect, $options);
$observer.observe($inViewElement);
}
$self.handleIntersect=function(entries, $observer){
entries.forEach((entry)=> {
if(entry.isIntersecting){
entry.target.classList.add('wdt-item-is-inview');
}else{
if($inViewLoop){
entry.target.classList.remove('wdt-item-is-inview');
}}
});
}};
$(window).on('elementor/frontend/init', function (){
elementorFrontend.hooks.addAction('frontend/element_ready/widget', wdtWidgetsOptionsHandler);
});
})(jQuery);
var debounce=function(t,e,a){var n;return function(){var r=this,u=arguments,i=a&&!n;clearTimeout(n),n=setTimeout((function(){n=null,a||t.apply(r,u)}),e),i&&t.apply(r,u)}};function returnCurrencySymbol(t=null){if(null===t)return"";let e={USD:"$",EUR:"€",CRC:"₡",GBP:"£",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",NGN:"₦",PHP:"₱",PLN:"zł",PYG:"₲",THB:"฿",UAH:"₴",VND:"₫"};return void 0!==e[t]?e[t]:""}jQuery(document).ready((function(){jQuery(".bdt-ss-link").on("click",(function(){var t=jQuery("");jQuery("body").append(t),t.val(jQuery(this).data("url")).select(),document.execCommand ("copy"),t.remove(),jQuery(this).find(".bdt-social-share-title").html(jQuery(this).data("copied")),setTimeout(()=>{jQuery(this).find(".bdt-social-share-title").html(jQuery(this).data("orginal"))},5e3)}))})),jQuery(document).ajaxComplete((function(t,e,a){if(e.responseJSON&&void 0!==e.responseJSON.cart_hash&&e.responseJSON.cart_hash&&jQuery(".bdt-offcanvas").hasClass("__update_cart")){let t=jQuery(".bdt-offcanvas.__update_cart").attr("id");bdtUIkit.util.ready((function(){bdtUIkit.offcanvas("#"+t).show()}))}}));
(()=>{"use strict";var e,r,n,a={},c={};function __webpack_require__(e){var r=c[e];if(void 0!==r)return r.exports;var n=c[e]={exports:{}};return a[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}__webpack_require__.m=a,e=[],__webpack_require__.O=(r,n,a,c)=>{if(!n){var i=1/0;for(o=0;o=c)&&Object.keys(__webpack_require__.O).every((e=>__webpack_require__.O[e](n[t])))?n.splice(t--,1):(_=!1,c0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,a,c]},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((r,n)=>(__webpack_require__.f[n](e,r),r)),[])),__webpack_require__.u=e=>714===e?"code-highlight.28a979661569ddbbf60d.bundle.min.js":721===e?"video-playlist.74fca1f2470fa6474595.bundle.min.js":256===e?"paypal-button.3d0d5af7df85963df32c.bundle.min.js":699===e?"60745ddf42fde6647dbc.bundle.min.js":156===e?"stripe-button.2acbca466dfeb9585680.bundle.min.js":241===e?"progress-tracker.e19e2547639d7d9dac17.bundle.min.js":26===e?"animated-headline.ffb4bb4ce1b16b11446d.bundle.min.js":534===e?"media-carousel.aca2224ef13e6f999011.bundle.min.js":369===e?"carousel.9b02b45d7826c1c48f33.bundle.min.js":804===e?"countdown.b0ef6392ec4ff09ca2f2.bundle.min.js":888===e?"hotspot.6ab1751404c381bfe390.bundle.min.js":680===e?"form.72b77b99d67b130634d2.bundle.min.js":121===e?"gallery.8ca9a354ce039d1ba641.bundle.min.js":288===e?"lottie.565b778d23c04461c4ea.bundle.min.js":42===e?"nav-menu.70d63d6d093f3a45a0c6.bundle.min.js":50===e?"popup.483b906ddaa1af17ff14.bundle.min.js":985===e?"load-more.064e7e640e7ef9c3fc30.bundle.min.js":287===e?"posts.e33113a212454e383747.bundle.min.js":824===e?"portfolio.042905bde20a1afccada.bundle.min.js":58===e?"share-buttons.81497e7fccd4fa77b6b9.bundle.min.js":114===e?"slides.fb6b9afd278bb9c5e75b.bundle.min.js":443===e?"social.2d2e44e8608690943f29.bundle.min.js":838===e?"table-of-contents.e42afd7d58cf06ab7a63.bundle.min.js":685===e?"archive-posts.80f1139e64eb8bd1a74a.bundle.min.js":858===e?"search-form.6eb419c467197ca411a7.bundle.min.js":102===e?"woocommerce-menu-cart.faa7b80e9ba9e5072070.bundle.min.js":1===e?"woocommerce-purchase-summary.46445ab1120a8c28c05c.bundle.min.js":124===e?"woocommerce-checkout-page.b18af78282979b6f74e4.bundle.min.js":859===e?"woocommerce-cart.fc30c6cb753d4098eff5.bundle.min.js":979===e?"woocommerce-my-account.3ee10d01e625dad87f73.bundle.min.js":497===e?"woocommerce-notices.da27b22c491f7cbe9158.bundle.min.js":800===e?"product-add-to-cart.023d7d31fbf96c3dbdfc.bundle.min.js":149===e?"loop.a9bed2dcd86eddf71249.bundle.min.js":153===e?"loop-carousel.4e8fd6593adbba21698e.bundle.min.js":356===e?"ajax-pagination.a2f9062c62a0ff30f25e.bundle.min.js":495===e?"mega-menu.f4e036531fed147c8f1f.bundle.min.js":157===e?"mega-menu-stretch-content.b203a97f096c18f3d1a2.bundle.min.js":244===e?"menu-title-keyboard-handler.ec514149d506e0fe9c54.bundle.min.js":209===e?"nested-carousel.9145d6891784d5818672.bundle.min.js":188===e?"taxonomy-filter.c1e2da2a112b3ab83ed8.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},n="elementor-pro:",__webpack_require__.l=(e,a,c,i)=>{if(r[e])r[e].push(a);else{var _,t;if(void 0!==c)for(var b=document.getElementsByTagName("script"),o=0;o{_.onerror=_.onload=null,clearTimeout(d);var c=r[e];if(delete r[e],_.parentNode&&_.parentNode.removeChild(_),c&&c.forEach((e=>e(a))),n)return n(a)},d=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:_}),12e4);_.onerror=onScriptComplete.bind(null,_.onerror),_.onload=onScriptComplete.bind(null,_.onload),t&&document.head.appendChild(_)}},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var r=__webpack_require__.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var n=r.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={396:0};__webpack_require__.f.j=(r,n)=>{var a=__webpack_require__.o(e,r)?e[r]:void 0;if(0!==a)if(a)n.push(a[2]);else if(396!=r){var c=new Promise(((n,c)=>a=e[r]=[n,c]));n.push(a[2]=c);var i=__webpack_require__.p+__webpack_require__.u(r),_=new Error;__webpack_require__.l(i,(n=>{if(__webpack_require__.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var c=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;_.message="Loading chunk "+r+" failed.\n("+c+": "+i+")",_.name="ChunkLoadError",_.type=c,_.request=i,a[1](_)}}),"chunk-"+r,r)}else e[r]=0},__webpack_require__.O.j=r=>0===e[r];var webpackJsonpCallback=(r,n)=>{var a,c,[i,_,t]=n,b=0;if(i.some((r=>0!==e[r]))){for(a in _)__webpack_require__.o(_,a)&&(__webpack_require__.m[a]=_[a]);if(t)var o=t(__webpack_require__)}for(r&&r(n);b